package com.ctshk.rpc.order.tour.dto.client;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * C端旅行团订单详情Dto
 */
@Data
@ApiModel(value = "ClientOrderDetailsDTO",description = "APP端旅行团订单详情Dto")
public class ClientOrderDetailsDTO implements Serializable {

    @ApiModelProperty(value = "订单号")
    private String orderNumber;

    @ApiModelProperty(value = "团期ID")
    private Long scheduleId;

    @ApiModelProperty(value = "行程ID")
    private Long tripId;

    @ApiModelProperty(value = "'行程标题(冗余)'")
    private String tripTitle;

    @ApiModelProperty(value = "'团号(冗余)'")
    private String scheduleNumber;

    @ApiModelProperty(value = "'出发日期(冗余)'")
    private LocalDate departDate;

    @ApiModelProperty(value = "联络人中文姓")
    private String contactCnSurname;

    @ApiModelProperty(value = "联络人中文名")
    private String contactCnName;

    @ApiModelProperty(value = "联络人英文姓")
    private String contactEnSurname;

    @ApiModelProperty(value = "联络人英文名")
    private String contactEnName;

    @ApiModelProperty(value = "联络人性别")
    private Integer contactGender;

    @ApiModelProperty(value = "联络电话")
    private String contactTelephones;

    @ApiModelProperty(value = "联系邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "内部备注")
    private String internalRemark;

    @ApiModelProperty(value = "创建时间")
    private LocalDateTime gmtCreate;

    @ApiModelProperty(value = "支付截止时间")
    private LocalDateTime payEndTime;

    @ApiModelProperty(value = "支付时间")
    private LocalDateTime payTime;

    @ApiModelProperty(value = "查詢編號")
    private String queryNumber;

    @ApiModelProperty(value = "可获得积分")
    private Integer point;

    @ApiModelProperty(value = "订单状态（0 待付款 1已付款 2已取消 3待处理 4待退款 5已退款）（C端）")
    private Integer orderStatus;

    @ApiModelProperty(value = "收据抬头")
    private String receiptHeader;

    @ApiModelProperty(value = "总应收")
    private BigDecimal totalReceivables;

    @ApiModelProperty(value = "总团费")
    private BigDecimal totalTourFee;

    @ApiModelProperty(value = "代收费用")
    private BigDecimal collectionFee;

    @ApiModelProperty(value = "调整费用")
    private BigDecimal adjustmentCost;

    @ApiModelProperty(value = "其他金额")
    private BigDecimal otherAmount;

    @ApiModelProperty(value = "报名须知")
    private String signNotice;

    @ApiModelProperty(value = "旅客人数统计")
    private List<TouristCountDTO> touristCountList;

    @ApiModelProperty(value = "旅客列表")
    private List<TouristInfoListDTO> touristInfoList;

}
